Embodiments according to the present invention relate to the programming, configuration, and integration of networked embedded devices with other applications.
Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Networked embedded devices are difficult to program. For example, programming is typically focused on individual nodes (such as sensors) and proprietary customized interfaces, requiring programmers to concentrate on low-level details rather than upon high-level objectives.
Many early sensor network deployments involved only sensors, and realized relatively simple application goals, such as reporting aggregated data to a base station. However as sensor networks are integrated into more sophisticated systems of networked cooperating objects, the processing tends to involve control loops where the monitoring facilities are complemented by the ability to control the environment utilizing an actuator automatically, in real-time, and in a decentralized fashion.
The ability to monitor and control complex processes may be important for the integration of networked embedded devices such as Wireless Sensor Networks WSNs, into systems of cooperating objects, and beyond the niche of very specific use cases e.g. environmental monitoring. Examples include but are not limited to monitoring and optimization of energy usage, traffic management, manufacturing processes, supply chain management, logistics etc.
As such networks of programmable embedded devices become more complex, rapid application development is gaining significance. To allow widespread adoption of these networks, they may be integrated with business applications. Incorporated by reference in its entirety herein for all purposes is Karnouskos et al, “Real world service interaction with enterprise systems in dynamic manufacturing environments”, Artificial Intelligence Techniques for Networked Manufacturing Enterprises Management, Benyoucef and Grabot Eds., Springer, (2010) ISBN 978-1-84996-118-9.
As used herein, the term ‘business applications’ refers generally to software that supports enterprises in achieving their goals. Examples of such goals include tracking business assets such as inventory or goods, and providing a mechanism to follow monetary flows within a company.
Business applications are typically executed by business information systems, such as Enterprise Resourse Planning ERP, Supply Chain Management SCM or Customer Relationship Management CRM systems. For many business applications, sensor networks may be closely integrated with the back-end computing and communication infrastructures so that a complete business process is executed partly in the back-end infrastructure, and partly in a sensor network close to the phenomenon of interest. Incorporated by reference in its entirety herein for all purposes is Spiess and Karnouskos, “Maximizing the business value of networked embedded systems through process level integration into enterprise software”, Second International Conference on Pervasive Computing and Applications (ICPCA 2007), Birmingham, United Kingdom, pp. 536-541 (2007).
Current efforts may not support rapid and wide market adoption of this technology. For example, only relatively few deployments of real world WSN applications exist, and those deployments tend to be noncommercial in nature. Several recent surveys such as the OnWorld report on Wireless Sensor Networks, and the CONET road-map, have identified the lack of ease of use as a major barrier for the adoption of WSN.
Today it may be difficult to realize network embedded device applications. Current programming platforms are low-level, typically at the operating system level. The programmer must therefore concentrate on details distant from the application logic, such as communication protocols, or power management.
These issues may be exacerbated in the context of WSNs, due to tension between the desired application requirements and the constraints of WSNs. In particular, requirements such as high reliability or long lifetime are difficult to realize in the highly dynamic, unreliable, and resource-constrained environment that characterizes WSNs.
Such an atmosphere generates a lack of visibility. For example, it is hard to investigate the performance or correctness of WSN processes, since they are typically hard-coded from scratch every time.
The research community has attempted to address these concepts, but has not yet solved at least two fundamental issues: unification and integration. FIG. 1 depicts this in a schematic manner, with the goal of integration 100 representing linkage of WSNs 102 with business processes 104, and the goal of unification 106 addressing a comprehensive programming framework for the WSNs.
As used herein, unification refers to a unified, comprehensive programming framework for network embedded devices such as WSNs. Existing proposals typically focus on one specific problem. One instance is how to specify the applicative role a node should take based on its context. For example, incorporated by reference herein for all purposes is Frank and Römer, “Algorithms for generic role assignment in wireless sensor networks”, SenSys, pp. 230-242, (2005).
Another instance of the narrowness of current approaches, is a focus on how to specify the subset of nodes that should receive a sensing or actuating command. For example, incorporated by reference herein for all purposes is Mottola and Picco, “Programming wireless sensor networks with logical neighborhoods”, InterSense, p. 8 (2006).
Still another instance of narrow focus, is how to efficiently query efficiently the WSN at large. For example, incorporated by reference in its entirety herein for all purposes is Madden et al., “Tinydb: an acquisitional query processing system for sensor networks”, ACM Trans. Database Syst., 30(1):122-173 (2005).
Even where proposals are more comprehensive (as in the case of Kairos), they typically assume a homogeneous, sense-only scenario. For example, incorporated by reference in its entirety herein for all purposes is Gummadi et al., “Macroprogramming wireless sensor networks using airos”, DCOSS, pp. 126-140 (2005).
Targeting business-oriented scenarios requires a broader approach, where the various core functionalities for development are harmonized in a single programming interface. As described in detail below, this can be achieved by integrating abstractions and mechanisms that until now have been considered in isolation.
At the same time, different application domains may require different functionality and a “one-size-fits-all” approach can be reductive (providing too few features), or inefficient (providing too many unused features).
As used herein, integration refers to strong cooperation of the business backend with network embedded devices such as WSNs. Conventional programming approaches typically consider the WSN as a stand-alone system. As such, the integration between the WSN and the backend infrastructure of business processes is left to the application developers.
Such integration requires considerable effort. From a technical standpoint, it requires significant expertise spawning from information systems on the traditional wired networks involving the back-end, down to low-level operating systems details on the tiny WSN devices. Moreover, these two sets of technologies (WSN and business applications) are typically designed to satisfy different goals, making the integration even harder.
Currently, industry may be reluctant to adopt WSN technology because of three factors: (i) the integration effort with existing business systems is too large, (ii) the difficulty of management of sensor network applications, and (iii) the difficulty involved in the development of large-scale, real-world applications.
Embodiments according to the present invention addresses these and other issues, with systems and methods employing a holistic approach that permits application developers to think at high levels of abstraction (that of business processes), but the constructs used are effectively implemented in the challenging reality of WSNs.